import {reg_money} from "@/api/regx";
// 验证身份证号码
export const checkIdCard = (rule, code, callback) => {
    let city = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外 " };
    let tip = ""
    let pass = true
    if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
        tip = "身份证号格式错误"
        pass = false;
    } else if (!city[code.substr(0, 2)]) {
        // tip = "地址编码错误"
        tip="身份证输入错误"
        pass = false
    } else {
        // 18位身份证需要验证最后一位校验位
        if (code.length === 18) {
            code = code.split('')
            // ∑(ai×Wi)(mod 11)
            // 加权因子
            var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
            // 校验位
            var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]
            var sum = 0
            var ai = 0
            var wi = 0
            for (var i = 0; i < 17; i++) {
                ai = code[i]
                wi = factor[i]
                sum += ai * wi
            }
            let last = parity[sum % 11];
            if (parity[sum % 11] != code[17]) {
                // tip = "校验位错误"
                tip="身份证输入错误"
                pass = false
            }
        }
    }
    if (!pass) {
        callback(new Error(tip))
    } else {
        callback()
    }
}

// 验证电话号码
export const checkPhone = (rule, code, callback) =>{
    if(!code) {
       return callback(new Error('手机号不能为空'))
    }
    else {
        const reg = /^1[3|4|5|7|8][0-9]\d{8}$/
        if(reg.test(code)) {
            callback()
        }
        else {
            return callback(new Error('请输入正确的手机号'))
        }
    }
}

// 验证姓名
export const checkName = (rule, code, callback) => {
    if(!code) {
        return callback(new Error('姓名不能为空'))
    }
    else {
        const reg = /^[\u4E00-\u9FA5]{2,5}$/
        if(reg.test(code)) {
            callback()
        }
        else {
            return callback(new Error('只能输入2-5个字的中文'))
        }
    }
}

// 员工信息验证规则
export const employeeRules = {
    name: [{ validator: checkName, trigger: 'blur', }],
    idCard: [{ validator: checkIdCard, trigger: 'blur', }],
    ethic: [{ required: true, message: '请选择民族', trigger: 'blur', }],
    nativePlace: [{ required: true, message: '请输入籍贯', trigger: 'blur', }],
    address: [
        { required: true, message: '请输入家庭住址', trigger: 'blur', },
        { max: 128, message: '地址长度不能大于128个字符', trigger: 'change', }
    ],
    healthy: [{ required: true, message: '请选择健康状况', trigger: 'change', }],
    picUrl: [{ required: true, message: '请输入照片地址', trigger: 'blur', }],
    maritalStatus: [{ required: true, message: '请选择婚姻状况', trigger: 'change', }],
    politic: [{ required: true, message: '请选择政治面貌', trigger: 'blur', }],
    email: [{ type: 'email', required: true, message: '请输入电子邮箱', trigger: 'blur', }],
    phone: [{ validator: checkPhone, trigger: 'blur', }],
    post: [{ required: true, message: '请输入职务', trigger: 'blur', }],
    departId: [{ required: true, message: '请选择部门', trigger: 'blur', }],
    position: [{ required: true, message: '请输入职位', trigger: 'blur', }],
    roleType: [{ required: true, message: '请选择人员类型', trigger: 'blur', }],
    contactStart: [{ required: true, message: '请选择合同起始时间', trigger: 'change', }],
    contactPeriod: [{ required: true, message: '请选择合同期限', trigger: 'change', }],
    contactType: [{ required: true, message: '请选择合同类型', trigger: 'change', }]
}

// 工资验证信息
export const salaryRules = {
    postSalary: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    gradeSalary: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    enhanced: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    baseMerit: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    yearMerit: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    classFee: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    studentFee: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    rewardOrPunish: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    overtimePay: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention1: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention2: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention3: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention4: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention5: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention6: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention7: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention8: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention9: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention10: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention11: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention12: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention13: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention14: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention15: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    retention16: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    insurance1: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    insurance2: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    insurance3: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    insurance4: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
    insurance5: [{ pattern: reg_money, message: '请输入正确的金额', trigger: ['blur', 'change'] }],
}